package cz.semjobKB.search.api;

/**
 * Interface declares methods to operate with search configuration
 */
public interface ISearchRules {

    /**
     * Sets subject rule set
     * @param rules Subject rule
     */
	public void setSubjectRule(IRulesSet rules);

    /**
     * Gets the rules how to find subject part of a triple.
     * @return Subject rule set
     */
	public IRulesSet getSubjectRule();

    /**
     * Sets object rule set
     * @param rules Object rule set
     */
	public void setObjectRule(IRulesSet rules);

    /**
     * Gets the rules hof to find object part of a triple
     * @return Object rule set
     */
	public IRulesSet getObjectRule();

    /**
     * Sets to predicate rule set
     * @param rules Predicate rules to set
     */
	public void setPredicateRule(IRulesSet rules);

    /**
     * Gets the predicate rules
     * @return Predicate rules
     */
	public IRulesSet getPredicateRule();

    /**
     * Sets terminology rules
     * @param rules Terminology rules
     */
	public void setTerminologyRule(IRulesSet rules);

    /**
     * Gets the terminology rule set
     * @return Terminology rule set
     */
	public IRulesSet getTerminologyRule();
}
